// config/index.ts

import { table } from "console";

// 小工具：把 "true" | "false" | "" | undefined 转成布尔
const bool = (key: string): boolean => import.meta.env[key] === 'true';
// 对于数字类型的转换，可以创建类似的方法：
const toNumber = (value: string | undefined, defaultValue: number): number => {
  const parsed = Number(value);
  return isNaN(parsed) ? defaultValue : parsed;
};

const toArray = (value: string | undefined, defaultValue: number[]): number[] => {
  if (!value) return defaultValue;
  try {
    const parsed = JSON.parse(value);
    return Array.isArray(parsed) ? parsed.map(Number) : defaultValue;
  } catch {
    return defaultValue;
  }
};

const config = {
    // API 地址
    apiBaseUrl: import.meta.env.VITE_APP_API_URL || 'https://default.example.com/api',
    apiKey: import.meta.env.VITE_APP_API_KEY || 'ae139f8f6a8efc2a74a1e852c5cdaa43',
    mockEnabled: bool('VITE_APP_MOCK_ENABLED'),
    // 应用示例：
    tableCurrentPage : toNumber(import.meta.env.VITE_APP_TABLE_CURRENT_PAGE, 1),
    tablePageSize : toNumber(import.meta.env.VITE_APP_TABLE_PAGE_SIZE, 10),
    tablePageSizes: toArray(import.meta.env.VITE_APP_TABLE_PAGE_SIZES, [10, 20, 30, 40, 50]),
  
    // 其他配置
    featureFlags: {
      newFeature: import.meta.env.VITE_APP_FEATURE_FLAG === 'true' || false,
    },
  };
  
  export default config;
  